package c15IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;


public class FileMgr {//实现对象的写入读出

	/**
	 * @param args
	 */

//写入================================================================
	public static boolean write(Object obj, String filePath) {
		//此方法把obj集合对象存入fielPath文件中
		try {
			FileOutputStream fos = new FileOutputStream(filePath); //得到文件输出流
			ObjectOutputStream oos = new ObjectOutputStream(fos); //得到对象输出流
			oos.writeObject(obj); //写入对象
			oos.close(); //关闭对象输出流
			fos.close(); //关闭文件输出流
			//System.err.println("写入对象到文件"); //在命令行窗口输出提示信息
			return true;
		} catch (Exception ex) {
			ex.printStackTrace(); //在命令行窗口输出出错信息
		}
		return false;

	}
//写入================================================================	

	//读出================================================================
	public static Object read(Object obj, String filePath) {
		//此方法从fielPath文件中读入文件存入obj集合对象中
		FileInputStream fis = null;
		try {
			new FileInputStream(filePath); //得到文件输入流
		} catch (Exception ex) {//此时若再出现异常，不必打印，只需新建文件
			write(obj, filePath);//如果没有此文件，则新建一个，避免程序退出
		} finally {
			try {
				fis = new FileInputStream(filePath); //得到文件输入流
				ObjectInputStream ois = new ObjectInputStream(fis); //得到对象输入流
				obj = ois.readObject(); //读取对象
				ois.close(); //关闭对象输入流
				fis.close(); //关闭文件输入流
				//System.err.println("从文件中读取对象"); //输出提示信息
			} catch (Exception ex2) {//此时不会再出现异常，所以略去异常处理的语句
				ex2.printStackTrace(); //在命令行窗口输出出错信息
			}
		}
		return obj;
	}
//读出================================================================	


//	public static void main(String[] args) {
//		//TODO Auto-generated method stub
//
//	}

}
